code pin B1 40 B2 39 B3 38 B4 37 B5 36 B6 35 B7 34 B8 33 B9 32 B10 31 B11 30 B12 29 B13 28 B14 27 B15 26 B16 25 B17 24 B18 23 B19 22 B20 21 A1 20 A2 19 A3 18 A4 17 A5 16 A6 15 A7 14 A8 13 A9 12 A10 11 A11 10 A12 9 A13 8 A14 7 A15 6 A16 5 A17 4 A18 3 A19 2 A20 1 HITS: 16 15 14 13 12 11 10 9 8 7 6 5 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 38 B3 Fn 37 B4 Esc ½ Tab Q A 1 Z 36 B5 < F1 Caps W S 2 X 35 B6 F4 F2 F3 E D 3 C 34 B7 G 5 T R F 4 V B 33 B8 LCtrl RCtrl 32 B9 H 6 Y U J 7 M N 31 B10 F6 ´ ¨ I K 8 , 30 B11 no F8 F7 O L 9 . 29 B12 Ø + Å P Æ 0 ' - 28 B13 F5 F9 Erase F10 enter space 27 B14 LShift RShift 26 B15 leftm rightm midm 25 B16 del F11 down 24 B17 Alt ScrLk PrtSc AltGr 23 B18 ins F12 right 22 B19 home end pause left 21 B20 PgUp PgDn To simplify matrix, connections done: 15 - 7 13 - 6 11 - 5 16 - 8 38 - 26 result: col1 col2 col3 col4 col5 col6 col7 col8 15 14 13 12 11 10 9 8 A6 A7 A8 A9 A10 A11 A12 A13 --- --- --- --- --- --- --- --- row1 37 B4 Esc ½ Tab Q A 1 Z row2 36 B5 < F1 Caps W S 2 X row3 35 B6 F4 F2 F3 E D 3 C row4 34 B7 G 5 T R F 4 V B row5 33 B8 LCtrl RCtrl row6 32 B9 H 6 Y U J 7 M N row7 31 B10 F6 ´ ¨ I K 8 , row8 30 B11 no F8 F7 O L 9 . row9 29 B12 Ø + Å P Æ 0 ' - row10 28 B13 F5 F9 Erase F10 enter space row11 27 B14 LShift RShift row12 25 B16 del F11 down row13 24 B17 Alt ScrLk PrtSc AltGr row14 23 B18 ins F12 right row15 22 B19 home end pause left row16 21 B20 PgUp PgDn row17 26 B15 leftm rightm midm row18 fn The keyboard matrix, as it is used in the code: /* Not yet implemented... */ #define KEY_MIDM KEY_App #define KEY_RIGHTM MOD_RGUI #define KEY_LEFTM MOD_LGUI #define KEY_FN 0 /* The keymap for a Thinkpad 600X keyboard */ const unsigned char keymap[NUMROWS][8] PROGMEM = { {0 ,KEY_Z ,KEY_1 ,KEY_A ,KEY_Q ,KEY_tab ,KEY_grave,KEY_esc }, {0 ,KEY_X ,KEY_2 ,KEY_S ,KEY_W ,KEY_cpslck,KEY_F1 ,KEY_Euro2}, {0 ,KEY_C ,KEY_3 ,KEY_D ,KEY_E ,KEY_F3 ,KEY_F2 ,KEY_F4 }, {KEY_B ,KEY_V ,KEY_4 ,KEY_F ,KEY_R ,KEY_T ,KEY_5 ,KEY_G }, {0 ,MOD_RCTRL ,0 ,0 ,0 ,0 ,MOD_LCTRL,0 }, {KEY_N ,KEY_M ,KEY_7 ,KEY_J ,KEY_U ,KEY_Y ,KEY_6 ,KEY_H }, {0 ,KEY_comma ,KEY_8 ,KEY_K ,KEY_I ,KEY_rbr ,KEY_equal,KEY_F6 }, {0 ,KEY_dot ,KEY_9 ,KEY_L ,KEY_O ,KEY_F7 ,KEY_F8 ,0 }, {KEY_slash,KEY_bckslsh,KEY_0 ,KEY_smcol,KEY_P ,KEY_lbr ,KEY_minus,KEY_ping }, {KEY_spc ,KEY_enter ,KEY_F10 ,0 ,0 ,KEY_bckspc,KEY_F9 ,KEY_F5 }, {0 ,MOD_RSHIFT ,0 ,0 ,0 ,MOD_LSHIFT,0 ,0 }, {KEY_darr ,0 ,KEY_F11 ,0 ,0 ,0 ,KEY_del ,0 }, {MOD_RALT ,0 ,KEY_PrtScr,0 ,KEY_scrlck,0 ,0 ,MOD_LALT }, {KEY_rarr ,0 ,KEY_F12 ,0 ,0 ,0 ,KEY_ins ,0 }, {KEY_larr ,KEY_break ,KEY_end ,0 ,0 ,0 ,KEY_home ,KEY_uarr }, {0 ,0 ,KEY_pgdn ,0 ,0 ,0 ,KEY_pgup ,0 }, {KEY_FN ,0 ,0 ,0 ,0 ,0 ,0 ,0 }, {0 ,0 ,0 ,KEY_MIDM ,0 ,KEY_RIGHTM,0 ,KEY_LEFTM}};